<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript</title>
  </head>

  <body>
    <script>
      /*
      数据类型指的是字面量的类型
      在JS中一共六种数据类型
        String 字符串
        Number 数字
        Boolean 布尔值
        Null 空值
        undefined 未定义
        Object 对象
      其中String Number null undefined Boolean属于基本数据类型
        而Object属于引用数据类型
      =====================================        
      Number字符串
        JS中数字最大值:1.7976931348623157e+308
        超过最大值Infinity(number类型)
    */
    </script>
    <script>
      // 字符串11
      var str = '11'
      // 数字11
      var num = 11
      console.log(str)
      console.log(num)
      console.log(typeof str) //string
      console.log(typeof num) //number
      console.log(Number.MAX_VALUE) //1.7976931348623157e+308
      console.log(Number.MIN_VALUE) //5e-324
      var a = Number.MAX_VALUE * Number.MAX_VALUE
      console.log(a) //Infinity => 类型为number
      console.log(typeof a) //number
      console.log('a' * 'b') //NaN => 类型为number
      // 在js中整数运算基本正确
      console.log(123 + 456)
      // 如果使用费js进行浮点运算，可能得到一个不精确的结果
      // 所以千万不要使用js进行对精确度要求高的进行计算
      console.log(0.1 + 0.1) //0.2000000000000000000003
    </script>
    <script type="text/javascript">
      /* 
        Null类型的值就一个:null
        Null 专门用来表示为空的对象
        Null类型typeof返回object
        Undefined(未定义)类型的值就一个:undefined
        当声明一个变量但是不给变量赋值时就返回undefined
      */
    </script>
    <script type="text/javascript">
      var obj = null
      console.log(typeof obj) //object
      var u
      console.log(u) //undefined
    </script>
  </body>

</html>
